Preview search results

ABSTRACT

Systems and methods are provided for previewing content that is located behind the links of a search results webpage without having to click on the links and thereby cause webpage changes. Embodiments provide a webpage that presents a first set of search results in response to a search query submitted by a user. This webpage is displayed in a graphical user interface and the first set of search results comprises one or more links to other search results webpages, which are defined dynamically and cannot be pre-computed. In the event a user mouses over one of the links, embodiments execute the search associated with the moused-over link and then render selected portions of the search results in a preview window that is positioned over a portion the webpage that displays the first set of search results.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.12/950,862, entitled “Preview Search Results,” filed Nov. 19, 2010,which is incorporated herein by reference for all purposes.

BACKGROUND

There are currently a wide variety of search engines and tools thatpermit computer users to search for electronic information. For example,a typical search engine, in response to receiving a search query from auser, executes a search and then displays search results in a graphicaluser interface. Some search engines provide search refinementsuggestions along side of the search results. These refinements areoften limited to specific categories or other types of information,which can be of limited assistance in searching for information, asthere can be many levels of sub-categories, and the user might not knowthe correct path to get to the desired information. Oftentimes, to findthe desired information in an Internet-based environment, the user mightstart with a search query, but still ends up browsing from webpage towebpage by clicking on links to the search results and search refinementsuggestions. Browsing from webpage to webpage may be inefficient,however, as each time the user clicks on a link such as a refinement,for example, the user has to wait for the next webpage to load. If therefinement causes another search to be executed, the webpage also mustwait on the query to be executed to present the results. Once thatwebpage loads, there is a reasonable chance the user will return to theprevious webpage because the results did not contain the desireinformation. In addition to being inefficient, browsing from webpage towebpage may cause the user to lose context of the original search. Inthis event, the user may have to restart the search from the originalquery or a whole new query.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 is a schematic diagram illustrating an example environment forimplementing aspects in accordance with at least one embodiment;

FIG. 2 is a schematic diagram depicting aspects of an examplecomputerized system in accordance with at least one embodiment;

FIG. 3 is a data flow diagram illustrating a method of using an examplecomputerized system to preview content located “behind” user-selectableelements of a search results webpage in accordance with at least oneembodiment;

FIG. 4 is a schematic diagram depicting aspects of an example searchuser interface component in accordance with at least one embodiment;

FIG. 5 is a schematic diagram depicting aspects of an example searchuser interface in accordance with at least one embodiment; and

FIG. 6 is a flowchart depicting example steps for previewing contentlocated behind links of search results webpages in accordance with atleast one embodiment.

Same numbers are used throughout the disclosure and figures to referencelike components and features, but such repetition of numbers is forpurposes of simplicity of explanation and understanding, and should notbe viewed as a limitation on the various embodiments.

DETAILED DESCRIPTION

In the following description, various embodiments will be described. Forpurposes of explanation, specific configurations and details are setforth in order to provide a thorough understanding of the embodiments.However, it will also be apparent to one skilled in the art that theembodiments may be practiced without the specific details, and thatvariations and other aspects not explicitly disclosed herein arecontemplated within the scope of the various embodiments. Furthermore,well-known features may be omitted or simplified in order not to obscurethe embodiment being described.

Disclosed herein are example techniques, including systems and methods,for previewing information about content that is associated with auser-selectable element on a webpage of content. In one instance, upon auser hovering a pointer (e.g., mouse pointer) over a link, a preview isprovided in a preview window showing at least some of the contentlocated on the webpage that would be displayed upon selection of thelink. Thus, the user can preview content available on another webpagewithout having to actually click on the link and navigate to the otherwebpage to view the content. Among other things, this is a time-savingfeature available to the user. For example, if the user determines thatthe items displayed in the preview while hovering a mouse pointer over alink are not of interest, the user will not select the link and browseother sections of the website. The user is not required to select thelink, view a second webpage to determine that the items are not ofinterest and then, for example, select a “back” button to return to thefirst webpage. The user can make the determination that the secondwebpage is not of interest without ever leaving the first webpage. Theability to view content on a second webpage without having to leave afirst webpage reduces search time and optimizes webpage navigation.

In operation, embodiments provide a webpage or other grouping or displayof content (e.g., a webpage) that presents a first set of search resultsin response to a search query submitted by a user. This webpage isdisplayed in a graphical user interface and the first set of searchresults comprises one or more search refinement links. In the event auser mouses over one of the search refinement links, embodiments executethe search associated with the moused-over link. For example, if theuser mouses over, but does not click on, a search refinement link, thatsearch refinement is executed in the background. While the searchassociated with the moused-over link is executed in the background, thewebpage that presents the first set of search results remains on displayin the graphical user interface. After the search associated with themoused-over link is executed, embodiments render selected portions ofthe search results in a preview window that is positioned over a portionthe webpage that displays the first set of search results. According tosome embodiments, the preview window is a tooltip and the selectedportions of the search results that are rendered in the tooltip areimages of items that are located on the webpage associated with themoused over link.

According to some embodiments, once the preview window is provided, theuser can mouse over the individual items displayed in the preview windowto obtain additional information about the respective items, or the usercan click on one of the individual items to load a webpage that presentsinformation about that item. This webpage may replace the webpage thatpresents the first set of search results.

Various approaches may be implemented in various environments forvarious applications. For example, FIG. 1 illustrates an example of anenvironment 100 for implementing aspects in accordance with variousembodiments. As will be appreciated, although a Web-based environmentmay be utilized for purposes of explanation, different environments maybe utilized, as appropriate, to implement various embodiments. Theenvironment 100 shown includes both a build portion (or side) and aproduction portion. The production portion may include one or moreelectronic client devices such as the client devices 102 depicted inFIG. 1. The client devices 102 may include any appropriate deviceoperable to send and receive requests, messages, or information over anappropriate network 104 and convey information back to a user of theclient devices 102. Examples of such client devices include personalcomputers, cell phones, handheld messaging devices, laptop computers,set-top boxes, personal data assistants, electronic book readers, andthe like.

The network 104 may include any appropriate network, including anintranet, the Internet, a cellular network, a local area network, a widearea network, a wireless data network, or any other such network orcombination thereof. Components utilized for such a system may depend atleast in part upon the type of network and/or environment selected.Protocols and components for communicating via such a network are wellknown and will not be discussed herein in detail. Communication over thenetwork may be enabled by wired or wireless connections, andcombinations thereof. In this example, the network 104 includes theInternet, as the environment includes a Web server 106 for receivingrequests and serving content in response thereto, although for othernetworks an alternative device serving a similar purpose could beutilized as would be apparent to one of ordinary skill in the art.

The illustrative environment 100 includes at least one applicationserver 108 and a data store 110. It should be understood that there maybe several application servers, layers, or other elements, processes, orcomponents, which may be chained or otherwise configured, which mayinteract to perform tasks such as obtaining data from an appropriatedata store. As used herein the term “data store” refers to any device orcombination of devices capable of storing, accessing, and/or retrievingdata, which may include any combination and number of data servers,databases, data storage devices, and data storage media, in anystandard, distributed, or clustered environment. The application server108 may include any appropriate hardware and software for integratingwith the data store as needed to execute aspects of one or moreapplications for the client devices 102, and may even handle a majorityof the data access and business logic for an application.

The application server 108 provides access control services incooperation with the data store 110, and is able to generate contentsuch as text, graphics, audio, and/or video to be transferred to theuser, which may be served to the user by the Web server 106 in the formof HTML, XML, or another appropriate structured language in thisexample. The handling of all requests and responses, as well as thedelivery of content between the client devices 102 and the applicationserver 108, may be handled by the Web server 106. It should beunderstood that the Web and application servers 106, 108 are notrequired and are merely example components, as structured code discussedherein may be executed on any appropriate device or host machine asdiscussed elsewhere herein. Further, the environment 100 may bearchitected in such a way that a test automation framework may beprovided as a service to which a user or application may subscribe. Atest automation framework may be provided as an implementation of any ofthe various testing patterns discussed herein, although various otherimplementations may be utilized as well, as discussed or suggestedherein.

The environment 100 may also include a build side designed to servicethe data store 110 rather than to service requests from the clientdevices 102. The build side of the environment 100 may include adevelopment server 118, which can have functionality similar to theapplication server 108. In at least one embodiment, the applicationserver 108 may also function as a build server, and separate productionand testing storage may not be utilized.

The data store 110 may include several separate data tables, databases,or other data storage mechanisms and media for storing data relating toa particular aspect. For example, the data store 110 illustratedincludes mechanisms for storing production data 112 and user information116, which may be utilized to serve content for the production side. Thedata store 110 also is shown to include a mechanism for storing testingdata 114, which may be utilized with the user information for thetesting side. It should be understood that there may be many otheraspects that are stored in the data store 110, such as for webpage imageinformation and access right information, which may be stored in any ofthe above listed mechanisms as appropriate or in additional mechanismsin the data store 110.

The data store 110 is operable, through logic associated therewith, toreceive instructions from the application server 108 or build server118, and obtain, update, or otherwise process data in response thereto.In one example, a user might submit a search request for a certain typeof item. In this case, the data store 110 might access the userinformation 116 to verify the identity of the user, and may access thecatalog detail information to obtain information about items of thattype. The information then may be returned to the user, such as in aresults listing on a Web webpage that the user is able to view via abrowser on one of the client devices 102. Information for a particularitem of interest may be viewed in a dedicated webpage or window of thebrowser.

Each server typically will include an operating system that providesexecutable program instructions for the general administration andoperation of that server, and typically will include a computer-readablemedium storing instructions that, when executed by a processor of theserver, allow the server to perform its intended functions. Suitableimplementations for the operating system and general functionality ofthe servers are known or commercially available, and are readilyimplemented by persons having ordinary skill in the art, particularly inlight of the disclosure herein.

The environment 100 in one embodiment is a distributed computingenvironment utilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 1. Thus, the depiction of the system 100 in FIG. 1should be taken as being illustrative in nature, and not limiting to thescope of the disclosure.

FIG. 2 depicts aspects of an example computerized system 200 configuredto preview content located behind user-selectable elements, such aslinks, of a search results webpage, in accordance with at least oneembodiment. The example system 200 includes a search client 202 and asearch service 204. Although, for clarity, FIG. 2 depicts one each ofthe search client 202 and the search service 204, systems in accordancewith at least one embodiment may include any suitable number of searchclients and any suitable number of search services. The search client202 and the search service 204 may be communicatively coupled, forexample, by a communication network within a computer and/or between aplurality of computers such as the client devices 102 and the servers106, 108, 118 of FIG. 1. For example, the search client 202 may behosted and/or implemented at least in part by one of the client devices102, and the search service 204 may be hosted and/or implemented atleast in part by computer systems corresponding to the web server 106,the application server 108, the build server 118 and/or the data store110.

The search client 202 may generate a search input stream 208 of searchinput elements such as characters of text. The unlabeled squares insidethe dashed line 208 represent search input elements in FIG. 2. When thesearch input elements are characters of text, the search input stream208 may be called a search input keystream (e.g., with reference to akeyboard method of input). However, search input elements are notlimited to characters of text. For example, search input elements mayinclude static images, audio, video, clickstreams, and any digitizeddata suitable for use as search input. The search client 202 maycommunicate the search input stream 208 to a search module 210 of thesearch service 204. The search module 210 may use the sequences of thesearch input elements in search input stream 208 to search across anindexed collection of content 214 and obtain search results 212. Thesearch module 210 may communicate the search results 212 to the searchclient 202. For example, the search module 210 may generate a searchresults webpage that provides links to individual search results, linksto related searches, or links to search refinements, such as itemcategories.

It should be appreciated that the indexed collection of content 214 mayinclude any suitable content. Examples of suitable content includeelectronic records, data structures, data objects, representationsincluding representations of goods such as physical goods and commercialgoods and representations of services such as commercial services,documents, document collections, images including digital images in anysuitable image format, audio, video, virtual environments includingvirtual realities (VR) and recordings thereof, and suitable combinationsthereof. This content may be organized in any number of indexes, such asbook indexes, electronics indexes, apparel indexes, etc.

According to an embodiment, if the user clicks on a link to a relatedsearch or a search refinement, a webpage change occurs. However, beforecommitting to the webpage change caused by clicking on the link, theuser can use the system 200 to preview what is “behind” the link. Forexample, the user can cause the search client 202 to send a previewrequest 220 to the search service 204. According to an embodiment, theuser causes the search client 202 to generate and send the previewrequest 220 by mousing over or near the link. In response to the previewrequest 220, the search service 204 executes the refinement or relatedsearch associated with the link, and then sends preview search results226 to the search client 202 for presentation in a preview window.According to an embodiment, an Ajax receiver 216 of the search service204 receives the preview request 220 and invokes the search module 210to execute the refinement or related search to obtain the preview searchresults 226.

According to an embodiment, if the user selects any of the itemsdisplayed in the preview window, then a new webpage associated with theselected item is provided. On the other hand, if the user moves thepointer off of the preview window and/or link without selecting either,the preview window simply disappears. Thus, the user can effectivelyview items normally only available for viewing on another webpagewithout having to leave the current webpage.

FIG. 3 is a data flow diagram illustrating an example method of using anexample computerized system 300 to preview content located behinduser-selectable elements, such as links, of a search results webpage, inaccordance with at least one embodiment. The encircled referencenumerals are referred to when describing the example method of using thesystem 300. However, it should be appreciated that the encircledreference numerals are provided for illustrative convenience and are notintended to limit ways in which data may flow in the system 300 or waysin which the system 300 may operate. For example, data may flow to andfrom any component of the system 300 in any order. The example system300 includes a client browser 302 and a search service 304. The clientbrowser 302 shown in FIG. 3 is an example of the search client 202 shownin FIG. 2, and the search service 304 shown in FIG. 3 is an example ofthe search service 204 shown FIG. 2.

As represented at 306, a user inputs search terms into a user interface308, which is provided by the client browser 302, and, as represented at310, the user interface 308 sends the search terms to a search module314 of the search service 304. The search module 314 shown in FIG. 3 isan example of the search module 210 shown in FIG. 2. At 316, the searchmodule 314 runs the search terms through an indexed collection ofcontent 318 to identify items that may be relevant to the search terms(e.g., find a “first set of search results”). According to anembodiment, the indexed collection of content 318 may be stored in thedata store 110 shown in FIG. 1. The first set of search resultsincludes, for example, ASINs and associated HTML for the items that wereidentified in the indexed collection of content 318 as being relevant tothe search terms. Further, for example, the first set of search resultsincludes search refinements and associated links. Example searchrefinements include links to categories of items that are relevant tothe submitted search terms and/or links to related searches that may beof interest to the user. The search module 314 may utilize any suitablerelevance determination technique to determine which content in theindexed content collection 318 is relevant to the inputted search terms.Alternatively, or in addition, the inputted search terms may beassociated with pre-defined subsets of the indexed content collection318, and the search module 314 may include the pre-defined subsets inthe first set of search results.

As represented at 320, the search module 314 sends the first set ofsearch results to the user interface 308, which presents the searchresults in a search results presentation 322 that comprises links 324 tothe individual items of the first set of search results and links 326 tothe search refinements. According to an embodiment, the searchrefinement links 326 describe a search that is separate and independentfrom the search created by the search terms inputted by the user at 306.Further, according to an embodiment, the search refinement links 326 areencoded with information necessary to execute the separate search. Forexample, the search refinement links 326 are encoded with the searchrefinement and the one or more nodes of the indexed collection ofcontent 318 to be searched.

As mentioned above, when a user reviews the first set of search resultspresented on the search results presentation 322, the user may want topreview the content behind one or more of the search refinement links326 without having to click on one of the links and navigate to anotherwebpage. By previewing what is behind links without having to click onlinks and wait for webpage changes, the user is able to review morecontent in less time. To enable the user to preview content behind oneor more of the search refinement links 326, when a user positions themouse pointer over or near one of the links, a script 330 running on thepresentation 322 causes the corresponding refinement search to beexecuted and then renders the refinement search results in the previewwindow.

For example, the script 330 may be running within the HTML on the clientbrowser 302 and configured to “watch” where the mouse pointer goes onthe search results presentation 322. According to an embodiment, if themouse pointer gets within a predefined distance of one of the searchrefinement links 326, then as represented at 332 the client script 330reads the refinement and pulls out the search refinement. For example,the script 330 may execute an if-then statement that says “if mousepointer gets near or touches one of search refinement links 326, thenread that search refinement link.”

As represented at 334, the script 330 causes the client browser 302 tosend data that represents the refinement search to an Ajax receiver 336of the search service 304. As represented at 340, the Ajax receiver 336decodes the data that represents the search refinement to determinewhich type of search needs to be executed and runs the search across theappropriate index or indexes of the indexed collection of content 318.According to an embodiment, the Ajax receiver 336 or some othercomponent of the system 300 invokes the search module 314 to execute thesearch. For example, if the search refinement link 326 is directed tobooks, the Ajax receiver 336 figures out that the refinement search isfor books and runs that search refinement across the index of theindexed collection of content 318 that contains content related tobooks. As represented at 344, the Ajax receiver 336 obtains from theindexed collection of content 318 a second set of search results (e.g.,preview search results). According to an embodiment, the Ajax receiver336 obtains the search results by way of the search module 314. Forexample, the preview search results may include ASINs and imagesassociated with items that match the refinement search. As representedat 348, the Ajax receiver 336 sends the preview search results to thescript 330, which, as represented at 352 renders the preview searchresults in a preview window 360. According to an embodiment, if thepreview search results include ASINs and images, then just the imagesare presented to the user via the preview window 360. According to someembodiments, the script 330 causes the preview window 360 to be renderedon top of the first set of search results of the search resultspresentation 322. For example, the preview window 360 may be a tooltipassociated with the search refinement link 326 that the user mousedover. It should be appreciated that the preview search results mayinclude a subset of relevant search results and, when the user actuallyselects (i.e., clicks on) the corresponding search refinement link, acomplete set of relevant search results are rendered in the searchresults presentation 322.

According to an embodiment, if the user clicks on one of the searchresults (e.g., images) provided in the preview window 360, the previewwindow 360 disappears and the webpage associated with the selectedresult replaces the search results presentation 322 that presented thefirst set of search results. Further, according to an embodiment, if theuser does not click on one of the search results presented in thepreview window 360 and instead moves the mouse pointer to another searchrefinement link 326, the script 330 causes the first preview window 360to disappear and a second preview window pop up and render searchresults associated with the new search refinement link 326.

According to an embodiment, search results for all or some of the searchrefinement links 326 are pre-fetched when the search resultspresentation 322 is loaded. For example, the search results for thesearch refinement links 326 may be fetched before a user has a chance tomouse over the links. As such, the search results can be rendered in apreview window 360 immediately after the user mouses over thecorresponding link. According to an embodiment, to pre-fetch searchresults, the script 330 is configured to pull search refinementinformation from some or all of the search refinement links 326immediately after the search results presentation 322 is provided. Thescript 330 then sends the search refinement information to the Ajaxreceiver 336, which obtains preview search results and sends theobtained preview search results back to the script 330 so that the scrip330 can render the preview search results immediately after a usermouses over or near one of the search refinement links 326.

According to an embodiment, the script 330 may be configured topre-fetch preview search results for the search refinement links 326most likely to be selected by the user. For example, since users may belikely to click on one or more of the first two to three searchrefinement links 326 presented on the search results presentation, thescript 330 may be configured to pre-fetch preview search results forthose links. In another example, after a user mouses over one of thesearch refinement links 326, the script 330 may pre-fetch preview searchresults for the adjacent search refinement links 326 because, afterviewing the preview search results for the one search refinement link326, the user is likely to mouse over adjacent search refinement links326. In yet another example, the script 330 may be configured topre-fetch preview search results for a particular search refinement link326 when the user positions the mouse pointer within a threshold numberof pixels of that link. In still another example, the script 330 maypre-fetch preview search results for all search refinement links 326 andconcurrently render those preview search results in preview windowsassociated with each of the search refinement links 326. Thus, the userwould not have to mouse over the search refinement links 326 to causepreview windows to render preview search results.

FIGS. 4 and 5 depict aspects of an example graphical user interface 400in accordance with at least one embodiment. For example, the userinterface 400 is an example of the search results presentation 322 shownin FIG. 3. The example user interface 400 includes a search inputcomponent 402, a search result component 406, and a search refinementcomponent 414. A preview window 410 appears in the user interface 400when a user hovers a mouse pointer over a link. The user interface 400may incorporate other suitable user interface components as well.

The search input component 402 may include a free-text input component416 and a search submission component 418. The user interface 400 shownin FIGS. 4 and 5 was generated in response to a keyword search of theterm “laptop,” which is shown in the free-text search box 416. The userinterface 400 is for illustration purposes only, and is not meant tolimit the scope of the technology described herein. Other userinterfaces are within the scope of the technology described herein. Thesearch result component 406, as shown in FIGS. 4 and 5, initiallydisplays a subset of the search results. Using the example shown in FIG.4, three items are initially displayed in the search result component.It is within the scope of the technology described herein to initiallydisplay any number of items.

The search refinement component 414 displayed in the user interface 400includes multiple search refinement links 426. In this embodiment, thesearch refinement links 426 are examples of the search refinement links326 shown in FIG. 3. These refinement links 426 are provided to assistthe user to further refine their search. For example, user interface 400indicates that over 1,000 search results were obtained based on a searchfor “laptop.” By selecting the “Netbook Computers” link 426, the initialsearch for a “laptop” would further be refined to items contained in thelaptop browse node as well as the netbook computers browse node. Thistechnology is well known in the art and therefore does not requirefurther description.

As illustrated, the preview window 410 may be positioned partially overthe first set of search results provided in the search resultpresentation 422 and may include a set of images 434 that represent aportion of the content located behind one of the search refinement links426. According to an embodiment, the preview window 410 appears when themouse pointer is positioned over or near one of the search refinementlinks 426. However, if the mouse pointer is not positioned over or nearone of the search refinement links 426, then the preview window 410 doesnot appear. Further, according to an embodiment, the preview window 410includes scroll buttons 412, 414 that, when selected by the user, causethe search results (e.g., images 434) displayed in the preview window410 to scroll across the preview window 410. For example, the searchresults scroll to the right when the user selects the right scrollbutton 412 and the search results scroll to the left when the userselects the left scroll button 414.

As mentioned above, according to an embodiment, the preview window 410appears when one of the search refinement links 426 is moused over. Insome embodiments, upon detecting a mouse-over event associated with theone of the search refinement links 426, the client 302 (FIG. 3)instructs the search service 304 (FIG. 3) to search for items containedin the browse node associated with the moused over link. The client 302provides the preview window 410 for display and populates the previewwindow 410 with at least one image representing an item associated withthe browse node. For example, with reference to FIG. 5, the user haspositioned the mouse pointer over or near the “2 to 4 Years” refinementlink 426, which represents the “2 to 4 Years” browse node containedwithin the “Toys & Games” browse node. Upon mousing over the link 426,the preview window 410 is populated with images of items availablewithin the “laptop”/“Toys & Games”/“2 to 4 Years” browse node (e.g.,laptop toys/games appropriate for 2-4 year old children).

FIG. 4 illustrates that a user can view items available in a differentbrowse node simply by mousing over an different link. In particular, inFIG. 4, the user has moved the pointer from the “2 to 4 Years” searchrefinement link 426 to the “Netbook Computers” search refinement link426 and the preview window 410 is populated with images 434 of itemsavailable within the “laptop”/“Computers & Accessories”/“NetbookComputer” browse node.

The description now turns to example steps that may be performed inaccordance with at least one embodiment. For example, the example stepsdiscussed below with reference to FIG. 6 may be executed by either ofsystems 200 or 300 shown in FIGS. 2 and 3. FIG. 6 depicts an exampleprocess 600 for previewing content located behind links of a searchresults webpage, in accordance with at least one embodiment. Asindicated at block 604, the process 600 generally begins with receivinga search query. For example, a user may input search terms in the textinput component 416 of the user interface 400. Next, as indicated atblock 608, the process 600 involves calling out to a search service andthen, as indicated at block 612, obtaining a first set of search resultsfrom the search service, where the first set of search results includessearch refinement links. Then, as indicated at block 618, the processinvolves displaying the first set of search results in a graphical userinterface. For example, to execute steps 608, 612, and 618,respectively, the search client 202 sends search terms 208 to the searchmodule 210 of the search service 204, which responds with a first set ofsearch results 212 that are presented in the search result presentation422.

Next, as indicated at decision block 619, the process 600 involvesdetermining whether a script running on the search results webpagespecifies that search results located “behind” certain search refinementlinks should be pre-fetched. If so, the process 600 involvespre-fetching the search results for the links indicated by the script,as indicated at block 620. After pre-fetching, the process 600 continuesto the step represented by decision block 622.

As indicated at decision block 622, in the event a user positions amouse pointer over or near one of the search refinement links of thefirst set of search results, the process 600, as indicated at block 626,sends the corresponding refinement search to the search service toobtain search results associated with the link. After sending therefinement search to the search service, the process 600, as indicatedat block 630, involves obtaining preview search results of therefinement search. Then, as indicated at block 634, the process 600involves providing a preview window in the graphical user interface,where, according to some embodiments, the preview window is positionedon top of the first set of search results. Next, as indicated at block638, the process 600 involves displaying the preview search results inthe preview window.

The various embodiments described herein may be implemented in a widevariety of operating environments, which in some cases may include oneor more user computers, computing devices, or processing devices whichmay be utilized to operate any of a number of applications. User orclient devices may include any of a number of general purpose personalcomputers, such as desktop or laptop computers running a standardoperating system, as well as cellular, wireless, and handheld devicesrunning mobile software and capable of supporting a number of networkingand messaging protocols. Such a system also may include a number ofworkstations running any of a variety of commercially-availableoperating systems and other known applications for purposes such asdevelopment and database management. These devices also may includeother electronic devices, such as dummy terminals, thin-clients, gamingsystems, and other devices capable of communicating via a network.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially-available protocols, such as TCP/IP, OSI, FTP,UPnP, NFS, CIFS, and AppleTalk. Such a network may include, for example,a local area network, a wide-area network, a virtual private network,the Internet, an intranet, an extranet, a public switched telephonenetwork, an infrared network, a wireless network, and any combinationthereof. The network may, furthermore, incorporate any suitable networktopology. Examples of suitable network topologies include, but are notlimited to, simple point-to-point, star topology, self organizingpeer-to-peer topologies, and combinations thereof.

In embodiments utilizing a Web server, the Web server may run any of avariety of server or mid-tier applications, including HTTP servers, FTPservers, CGI servers, data servers, Java servers, and businessapplication servers. The server(s) also may be capable of executingprograms or scripts in response requests from user devices, such as byexecuting one or more Web applications that may be implemented as one ormore scripts or programs written in any programming language, such asJava®, C, C# or C++, or any scripting language, such as Perl, Python, orTCL, as well as combinations thereof. The server(s) may also includedatabase servers, including without limitation those commerciallyavailable from Oracle®, Microsoft®, Sybase®, and IBM®.

The environment may include a variety of data stores and other memoryand storage media as discussed above. These may reside in a variety oflocations, such as on a storage medium local to (and/or resident in) oneor more of the computers or remote from any or all of the computersacross the network. In a particular set of embodiments, the informationmay reside in a storage-area network (“SAN”) familiar to those skilledin the art. Similarly, any necessary files for performing the functionsattributed to the computers, servers, or other network devices may bestored locally and/or remotely, as appropriate. Where a system includescomputerized devices, each such device may include hardware elementsthat may be electrically coupled via a bus, the elements including, forexample, at least one central processing unit (CPU), at least one inputdevice (e.g., a mouse, keyboard, controller, touch screen, or keypad),and at least one output device (e.g., a display device, printer, orspeaker). Such a system may also include one or more storage devices,such as disk drives, optical storage devices, and solid-state storagedevices such as random access memory (“RAM”) or read-only memory(“ROM”), as well as removable media devices, memory cards, flash cards,etc.

Such devices also may include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device, etc.), and working memory asdescribed above. The computer-readable storage media reader may beconnected with, or configured to receive, a computer-readable storagemedium, representing remote, local, fixed, and/or removable storagedevices as well as storage media for temporarily and/or more permanentlycontaining, storing, transmitting, and retrieving computer-readableinformation. The system and various devices also typically will includea number of software applications, modules including program modules,services, or other elements located within at least one working memorydevice, including an operating system and application programs, such asa client application or Web browser. It should be appreciated thatalternate embodiments may have numerous variations from that describedabove. For example, customized hardware might also be utilized and/orparticular elements might be implemented in hardware, software(including portable software, such as applets), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

Storage media and computer readable media for containing code, orportions of code, may include any appropriate media known or used in theart, including storage media and communication media, such as but notlimited to volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage and/or transmissionof information such as computer readable instructions, data structures,program modules, or other data, including RAM, ROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disk (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which maybe utilized to store the desired information and which may be accessedby the a system device. Program modules, program components and/orprogrammatic objects may include computer-readable and/orcomputer-executable instructions of and/or corresponding to any suitablecomputer programming language. In at least one embodiment, eachcomputer-readable medium may be tangible. In at least one embodiment,each computer-readable medium may be non-transitory in time. Based onthe disclosure and teachings provided herein, a person of ordinary skillin the art will appreciate other ways and/or methods to implement thevarious embodiments.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing embodiments (especially in the context of thefollowing claims) are to be construed to cover both the singular and theplural, unless otherwise indicated herein or clearly contradicted bycontext. The terms “comprising,” “having,” “including,” and “containing”are to be construed as open-ended terms (i.e., meaning “including, butnot limited to,”) unless otherwise noted. The term “connected” is to beconstrued as partly or wholly contained within, attached to, or joinedtogether, even if there is something intervening. Recitation of rangesof values herein are merely intended to serve as a shorthand method ofreferring individually to each separate value falling within the range,unless otherwise indicated herein, and each separate value isincorporated into the specification as if it were individually recitedherein. All methods described herein can be performed in any suitableorder unless otherwise indicated herein or otherwise clearlycontradicted by context. The use of any and all examples, or exemplarylanguage (e.g., “such as”) provided herein, is intended merely to betterilluminate embodiments and does not pose a limitation on the scopeunless otherwise claimed. No language in the specification should beconstrued as indicating any non-claimed element as essential to thepractice of at least one embodiment.

Preferred embodiments are described herein, including the best modeknown to the inventors. Variations of those preferred embodiments maybecome apparent to those of ordinary skill in the art upon reading theforegoing description. The inventors expect skilled artisans to employsuch variations as appropriate, and the inventors intend for embodimentsto be constructed otherwise than as specifically described herein.Accordingly, suitable embodiments include all modifications andequivalents of the subject matter recited in the claims appended heretoas permitted by applicable law. Moreover, any combination of theabove-described elements in all possible variations thereof iscontemplated as being incorporated into some suitable embodiment unlessotherwise indicated herein or otherwise clearly contradicted by context.

All references, including publications, patent applications, andpatents, cited herein are hereby incorporated by reference to the sameextent as if each reference were individually and specifically indicatedto be incorporated by reference and were set forth in its entiretyherein.

What is claimed is:
 1. A computer-implemented method, comprising:presenting a set of search results and user-selectable elements operableto refine the set of search results in graphical user interface,individual user-selectable elements corresponding to a respectiverefinement query term, wherein a respective user-selectable element isproximate to one or more of the user-selectable elements; determiningthat a pointer is positioned within a threshold number of pixels of afirst user-selectable element of the user-selectable elements;pre-fetching a first set of refined search results based on therefinement query term associated with the first user-selectable element;pre-fetching a second set of refined search results for a seconduser-selectable element of the user-selectable elements that isproximate to the first user-selectable element in the graphical userinterface based on the refinement query associated with the seconduser-selectable element; determining that the pointer is positionedwithin a threshold number of pixels of the second user-selectableelement of the user-selectable elements; and providing for display, in apreview area of the graphical user interface, the second set of refinedsearch results.
 2. The computer-implemented method of claim 1, whereinproviding for display further includes: calling a search service toexecute a search that includes a refinement query term associated withthe user-selectable element.
 3. The computer-implemented method of claim1, wherein a view of at least one item associated with theuser-selectable element is presented without a clicking theuser-selectable element.
 4. The computer-implemented method of claim 1,wherein the user-selectable elements include search refinement options,and wherein selecting a search refinement option of the searchrefinement options causes a reduced set of results to be displayed. 5.The computer-implemented method of claim 1, further comprising:displaying a navigation element in the preview area; receiving aselection of the navigation element; and scrolling the preview area todisplay one or more images of one or more items related to at least oneuser-selectable element of the user-selectable elements.
 6. Thecomputer-implemented method of claim 1, wherein the preview area is atooltip associated with at least one of the user-selectable elements. 7.The computer-implemented method of claim 1, wherein individualuser-selectable elements include a search refinement link that, uponactivation, instruct a search service to refine search results.
 8. Thecomputer-implemented method of claim 1, wherein the second set of searchresults, displayed in the preview area, includes an image of an itemrelated to one of the user-selectable elements, the method furthercomprising: receiving a selection of the image; and displaying in thepreview area information related to an item represented in the image. 9.A non-transitory computer-readable storage medium including instructionsthat, when executed by a processor, cause the processor to: present afirst set of search results and user-selectable elements operable torefine the first set of search results in graphical user interface,individual user-selectable elements corresponding to a respectiverefinement query term, wherein a respective user-selectable element isproximate to one or more of the user-selectable elements; determine thata pointer is positioned within a threshold number of pixels of a firstuser-selectable element of the user-selectable elements; pre-fetch afirst set of refined search results based on the refinement query termassociated with the first user-selectable element; pre-fetch a secondset of refined search results for a second user-selectable element ofthe user-selectable elements that is proximate to the firstuser-selectable element in the graphical user interface based on therefinement query associated with the second user-selectable element; andprovide for display, in a preview area of the graphical user interface,the first set of refined search results.
 10. The non-transitorycomputer-readable storage medium of claim 9, wherein the instructions,when executed to provide for display further enable the processor to:call a search service to execute a search that includes a refinementquery term associated with the user-selectable element.
 11. Thenon-transitory computer-readable storage medium of claim 9, wherein aview of at least one item associated with the user-selectable element ispresented without a clicking the user-selectable element.
 12. Thenon-transitory computer-readable storage medium of claim 9, wherein theinstructions, when executed further enable the processor to: display anavigation element in the preview area; receive a selection of thenavigation element; and scroll the preview area to display one or moreimages of one or more items related to at least one user-selectableelement of the user-selectable elements.
 13. The non-transitorycomputer-readable storage medium of claim 9, wherein the user-selectableelements include search refinement options, and wherein selecting asearch refinement option of the search refinement options causes areduced set of results to be displayed.
 14. The non-transitorycomputer-readable storage medium of claim 9, wherein the preview area isa tooltip associated with at least one of the user-selectable elements.15. The non-transitory computer-readable storage medium of claim 9,wherein individual user-selectable elements include a search refinementlink that, upon activation, instruct a search service to refine searchresults.
 16. A system, comprising: a processor; and a memory deviceincluding instructions that, when executed by the processor, cause theprocessor to: present a first set of search results and user-selectableelements operable to refine the first set of search results in graphicaluser interface, individual user-selectable elements corresponding to arespective refinement query term, wherein a respective user-selectableelement is proximate to one or more of the user-selectable elements;determine that a pointer is positioned within a threshold number ofpixels of a first user-selectable element of the user-selectableelements; pre-fetch a first set of refined search results based on therefinement query term associated with the first user-selectable element;pre-fetch a second set of refined search results for a seconduser-selectable element of the user-selectable elements that isproximate to the first user-selectable element in the graphical userinterface based on the refinement query associated with the seconduser-selectable element; and provide for display, in a preview area ofthe graphical user interface, the first set of refined search results.17. The system of claim 16, wherein the second set of search results,displayed in the preview area, includes an image of an item related toone of the user-selectable elements, and wherein the instructions, whenexecuted further enable the system to: receive a selection of the image;and display in the preview area information related to an itemrepresented in the image.
 18. The system of claim 16, wherein theinstructions, when executed further enable the system to: call a searchservice to execute a search that includes a refinement query termassociated with the user-selectable element.
 19. The system of claim 16,wherein the instructions, when executed further enable the system to:display a navigation element in the preview area; receive a selection ofthe navigation element; and scroll the preview area to display one ormore images of one or more items related to at least one user-selectableelement of the user-selectable elements.
 20. The system of claim 16,wherein the user-selectable elements include search refinement options,and wherein selecting a search refinement option of the searchrefinement options causes a reduced set of results to be displayed.